﻿package independence.testing.reflect 
{
	import com.carlcalderon.arthropod.Debug;
	
	import independence.core.IndyObject;
	import independence.reflection.IClassMirror;
	import independence.reflection.Mirror;
	import independence.testing.ITest;
	
	/**
	 * ...
	 * @author TK, TK Assembled
	 */
	public class ReflectionTestRunner extends IndyObject implements ITest
	{
		
		public function ReflectionTestRunner() 
		{
			
		}
		
		public function run():void
		{
			var mirror:IClassMirror = Mirror.getInstance(ReflectionTestObject);
			Debug.log(mirror.getDeclaredProperties());
			Debug.log(mirror.getDeclaredProperty("objectProperty"));
			Debug.log(mirror.getDeclaredMethods());
			Debug.log(mirror.getDeclaredMethod("staticElectricty"));
			Debug.log(mirror.getConstants());
			Debug.log(mirror.getConstant("CONSTANT"));
			Debug.log(mirror.getFields());
			Debug.log(mirror.getField("publicObject"));
			Debug.log(mirror.getProperties());
			Debug.log(mirror.getProperty("prototype"));
			Debug.log(mirror.getMethods());
			Debug.log(mirror.getMethod("staticElectricty"));
			Debug.log(mirror.getSuperclass());
			Debug.log(mirror.getSuperclasses());
			Debug.log(mirror.getName());
			Debug.log(mirror.getPackage());
			Debug.log(mirror.getSimpleName());
			Debug.log(mirror.getInterfaces());
		}
		
	}
	
}